<?php

    require_once APPPATH . 'dao/TestDAO.php';
    require_once APPPATH . 'dao/SocioDAO.php';

    class Test extends MY_Controller {
        
        function __construct() {
            parent::__construct();
    	}
        
        public function test(){
            
            $testDAO = new TestDAO();
            $i=0;
            
            //Prueba 1
            $test = $this->checkDB();
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia de DB';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 2
            $test = $testDAO->checkTable('socio');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla socio';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 3
            $test = $testDAO->listarCampos('socio');
            $expected_result = $a = array( 'id', 'nombre', 'apellido', 'domicilio',
                                        'domicilio_cobro', 'tipo_documento_id',
                                        'numero_documento', 'zona_id', 'categoria_id',
                                        'fecha_nacimiento', 'vitalicio', 'estado_id', 'vencimiento_estado'
                                        );
            $test_name = 'Prueba '.++$i.' - Existen los campos en socio';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 4
            $test = $testDAO->checkTable('categoria');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla categoria';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 5
            $test = $testDAO->listarCampos('categoria');
            $expected_result = $a = array( 'id', 'nombre',
                                        'limite_inferior_edad', 'limite_superior_edad',
                                        'importe'
                                        );
            $test_name = 'Prueba '.++$i.' - Existen los campos en categoria';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 6
            $test = $testDAO->checkTable('servicio_adicional');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla servicio_adicional';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 7
            $test = $testDAO->listarCampos('servicio_adicional');
            $expected_result = $a = array( 'id', 'nombre', 'importe_menor',
                                        'importe_cadete', 'importe_mayor',
                                        'importe_vitalicio');
            $test_name = 'Prueba '.++$i.' - Existen los campos en servicio_adicional';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 8
            $test = $testDAO->checkTable('socio_servicio_adicional');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla socio_servicio_adicional';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 9
            $test = $testDAO->listarCampos('socio_servicio_adicional');
            $expected_result = $a = array( 'id', 'socio_id', 'servicio_adicional_id');
            $test_name = 'Prueba '.++$i.' - Existen los campos en socio_servicio_adicional';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 10
            $test = $testDAO->checkTable('tipo_documento');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla tipo_documento';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 11
            $test = $testDAO->listarCampos('tipo_documento');
            $expected_result = $a = array( 'id', 'nombre');
            $test_name = 'Prueba '.++$i.' - Existen los campos en tipo_documento';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 10
            $test = $testDAO->checkTable('profesor');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla profesor';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 11
            $test = $testDAO->listarCampos('profesor');
            $expected_result = $a = array( 'id', 'nombre', 'apellido');
            $test_name = 'Prueba '.++$i.' - Existen los campos en profesor';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 10
            $test = $testDAO->checkTable('tipo_responsabilidad');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla tipo_responsabilidad';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 11
            $test = $testDAO->listarCampos('tipo_responsabilidad');
            $expected_result = $a = array( 'id', 'nombre');
            $test_name = 'Prueba '.++$i.' - Existen los campos en tipo_responsabilidad';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 10
            $test = $testDAO->checkTable('servicio_adicional_profesor');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla servicio_adicional_profesor';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 11
            $test = $testDAO->listarCampos('servicio_adicional_profesor');
            $expected_result = $a = array( 'id', 'servicio_adicional_id', 'profesor_id',
                                        'tipo_responsabilidad_id', 'sueldo_fijo');
            $test_name = 'Prueba '.++$i.' - Existen los campos en servicio_adicional_profesor';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 10
            $test = $testDAO->checkTable('valores_inscripcion');
            $expected_result = TRUE;
            $test_name = 'Prueba '.++$i.' - Existencia Tabla valores_inscripcion';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Prueba 11
            $test = $testDAO->listarCampos('valores_inscripcion');
            $expected_result = $a = array( 'id', 'fecha', 'valor');
            $test_name = 'Prueba '.++$i.' - Existen los campos en valores_inscripcion';
            $this->unit->run($test, $expected_result, $test_name);
            
            //Generación Reporte de Ejecución de las Pruebas
            echo $this->unit->report();
            
        }
        
        public function checkDB(){
            
            $this->load->dbutil();
            
            return $this->dbutil->database_exists('MetodosDB');
            
        }
        
    }

?>
